SaaS refers to a software delivery model in which software is centrally hosted, for instance, in a cloud, by software vendors or application service providers (ASPs). In cloud computing, a cloud refers to a computing platform implemented by a network of distributed servers or the like. Examples of a cloud based computing platform may include, for example, Microsoft Windows Azure, Amazon Elastic Compute Cloud, etc.
An individual user who has permission to access a server machine running on a cloud based computing platform can use the server's processing power to run an application, store data, or perform any other computing task. In a SaaS system, a user may access such a centrally hosted application (referred to as a “SaaS application”) using a thin client via a web based browser application running on a computing device connected to a network such as the Internet, a Local Area Network (LAN), a Wide Area Network (WAN), etc.
In some cases, authentication may be needed to allow access to certain data using a SaaS application. For example, a company may use a SaaS application hosted in a cloud to manage the company's data. To access the company's data, a user (e.g., an employee of the company) may need to authenticate through the SaaS application. More specifically, the user may provide the SaaS application with authentication information such as user credentials, the SaaS application may receive the authentication information, verify the authentication information, and, if verified, establish an authenticated session for the user. However, this approach may present issues for some entities that are unwilling to share or that cannot share such authentication information with other entities such as a software vendor or application service provider providing the SaaS application. No solutions currently exist that address these issues. Consequently, there is room for innovations and improvements.